//BC146 添加逗号

import java.io.*;
import java.util.Arrays;

class Main {
    public static void main(String[] args) throws IOException{
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String n = reader.readLine();
        int a=0;
        StringBuilder ans = new StringBuilder();
        for(int i=n.length()-1;i>=0;i--){
            if(a%3==0&&a!=0){
                ans.append(',');
            }
            int tmp=n.charAt(i)-'0';
            ans.append(tmp);
            a++;
        }
        System.out.print(ans.reverse().toString());

    }
}



//DP2 跳台阶
 class Main2 {
    public static void main(String[] args) throws IOException{
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(reader.readLine());
        int[] dp = new int[n+1];
        dp[0]=1;
        dp[1]=1;
        for(int i=2;i<=n;i++){
            dp[i]=dp[i-1]+dp[i-2];
        }
        System.out.print(dp[n]);
    }
}



//JZ61 扑克牌顺子
public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     *
     *
     * @param numbers int整型一维数组
     * @return bool布尔型
     */
    public boolean IsContinuous (int[] numbers) {
        int zero = 0;
        Arrays.sort(numbers);
        //记录0的数量
        for (int i = 0; i < numbers.length; i++) {
            if (numbers[i] == 0) {
                zero++;
            }
        }
        //0的数量为4直接返回true
        if (zero == 4) {
            return true;
        }
        //数组是排序过的，令i为zero+1跳过0并且避免了数组越界
        for (int i = zero + 1; i < numbers.length; i++) {
            int a = numbers[i] - numbers[i - 1];
            if (a == 0) {
                return false;
            }
            //a不为1说明必定大于1,a减一代表用去一个0
            while (a != 1) {
                a--;
                zero--;
            }
        }
        //0不为负数说明刚好能组成顺子
        return zero >= 0;
    }
}